package org.example.leetcode;


/**
 * @version 1.0.0
 * @author: lynn
 * @description:原地移除重复的数字
 * @date: 2021/7/27 12:11
 */
public class LC27 {
    public static void main(String[] args) {
        int[] nums={1,2,3,4,2,1,5};
        LC27 lc=new LC27();
        System.out.println(lc.removeElement(nums,2));
    }

    //fixme https://www.bilibili.com/video/BV1ep4y1S7zv?from=search&seid=7897846591575892890
    //fixme 分析执行过程
    public int removeElement(int[] nums, int val) {
        int slow=0;
        int fast=0;
        while (fast<nums.length){
            if (nums[fast]!=val){
                nums[slow]=nums[fast];
                //如果不相等的话，两个都往前挪一步
                slow++;
                fast++;
            }else {
                //如果相等的话快指针往前挪一步
                fast++;
            }
        }
        return slow;
    }
}
